home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Misc / FLM / otherfiles / deutsch / ARexx / trans_auto.rexx < prev    next >
OS/2 REXX Batch file  |  2000-01-01  |  3KB  |  108 lines

  1. /*
  2.   automatischer Übersetzung-Script über Shell
  3.   (c) 1996 Denis Unger (16.07.1996)
  4.  
  5.   Dieser Script übersetzt die Datei, welche als Argument angegeben wird.
  6.   Die Übersetzung wird in die angegebene Zieldatei geschrieben.
  7.  
  8.   Aufruf: rx trans_auto.rexx <Quelle> <Ziel> <Sprache>
  9.  
  10.   z.B.: rx trans_auto.rexx text1.txt text2.txt englisch
  11. */
  12.  
  13. /* Nun kommen persönliche Einstellungen, welche evtl. geändert werden müssen ...*/
  14. /********************************************************************************/
  15. FLM             = 'FLM:FLM'             /* Programm FLM */
  16. /********************************************************************************/
  17.  
  18. arguments=words(Arg(1))     /* Anzahl der übergebene Argumente */
  19.  
  20. if arguments<4 then do
  21.   say "Falscher Aufruf !!!"
  22.   say "rx trans_auto.rexx <Quell-Datei> <Ziel-Datei> <Sprache> [<Modus>]"
  23.   exit
  24. end
  25.  
  26. quelle=word(arg(1),1)  /* Quelle */
  27. ziel=word(arg(1),2)    /* Ziel*/
  28. sprache=word(arg(1),3) /*Sprache*/
  29.  
  30. if word(arg(1),4)="2" then do
  31.   mode=2
  32. end
  33. else do
  34.   mode=1
  35. end
  36.  
  37. Options Results
  38.  
  39. gestartet = 0
  40. if ~show('PORTS','FLM') then do          /* FLM schon gestartet ? */
  41.     address command 'run >NIL: ' || FLM  /* starte FLM */
  42.     address command "SYS:Rexxc/WaitForPort FLM"
  43.     gestartet = 1        /* FLM wird nach Übersetzung beendet */
  44. end
  45.  
  46.   address FLM SETLANGUAGE sprache
  47.  
  48.   succ=OPEN(source,quelle,'R')
  49.   if succ=0 then do
  50.     say "Fehler beim öffnen der Quell-Datei"
  51.     exit
  52.   end
  53.  
  54.   succ=OPEN(dest,ziel,'W')
  55.   if succ=0 then do
  56.     say "Fehler beim öffnen der Ziel-Datei"
  57.     CLOSE(source)
  58.     exit
  59.   end
  60.  
  61. do forever
  62.   if EOF(source) then leave    /* Falls Quell-Datei am Ende -> Schleife verlassen */
  63.   text=readln(source)   /* Nächste Zeile lesen */
  64.   do i=1 to words(text)
  65.  
  66.     wort1 = word(text,i)         /* einzelnen Wörter holen */
  67.     wort2= word(text,i+1)
  68.  
  69.     if mode=2 then wort=wort1 || " " || wort2
  70.     if mode=1 then wort=wort1
  71.  
  72.     address FLM lookword wort   /* Wort suchen */
  73.     address FLM found           /* steht Wort im Wörterbuch ? */
  74.     gefunden = RESULT
  75.  
  76.     if mode=2 & gefunden>0 then do
  77.         wort=wort1
  78.         address FLM lookword wort
  79.         address FLM found
  80.         gefunden = RESULT
  81.     end
  82.     else do
  83.         if mode=2 then i=i+1
  84.     end
  85.  
  86.     if gefunden = 0 then do     /* Wort wurde gefunden */
  87.       address FLM takeword
  88.       WriteCh(dest,RESULT)      /* 1. Übersetzung schreiben */
  89.     end
  90.     else do                     /* Wort wurde nicht gefunden */
  91.       WriteCh(dest,"[" || wort || "]")  /* Original-Wort schreiben*/
  92.     end
  93.     WriteCh(dest," ")           /* Leerzeichen zwischen den Wörtern */
  94.   end
  95.   WriteLn(dest, "")             /* Enter schreiben*/
  96. end
  97.  
  98. CLOSE(source) /* Quell-Datei schließen */
  99. CLOSE(dest)   /* Ziel-Datei schließen */
  100.  
  101. if gestartet = 1 then do
  102.  /* wurde FLM durch das Script gestartet, so wird es nun auch wieder beendet */
  103.  address FLM QUIT
  104. end
  105.  
  106. exit
  107.  
  108.